export  function throttle(fn, period = 200) {
    let _lastTime = null
    let _timer = null
    return function (...args) {
        const _nowTime = +new Date()

        _timer && clearTimeout(_timer)

        if (!_lastTime || _nowTime - _lastTime > period) {
            fn.apply(this, args)
            _lastTime = _nowTime
        } else {
            // 确保最后一次即使不满足 period 时间段，但仍会调用
            // 使用箭头函数来确保 this 不变
            _timer = setTimeout(() => {
                fn.apply(this, args)
            }, period)
        }
    }
}